A video stream generally includes a number of image frames. For communicating video streams over Internet or wireless networks the video streams are typically encoded according to predictive video coders. A predictive video coder encodes the video stream using motion compensation. Video Communication over the Internet or wireless networks may be prone to User Datagram Packet (UDP) losses. The video stream, which is encoded according to a typical predictive video coder, may be subjected to substantial quality degradation because of an error caused, due to packet loss, in a particular image frame. This may be because the error occurring in an image frame may propagate through the motion compensated prediction loop and/or may corrupt image frames that might have been received correctly. Thus, good video quality of service (QoS) over these networks requires error resilience mechanisms.
Periodic intra frame coding is one mechanism that provides some degree of error resilience while communicating the video stream over these networks. According to this mechanism the video stream may be encoded to include an intra-image frame (I-frames) followed by a number of predicted image frames (P-frames). The P-frames are image frames that may be predicated according to motion compensation, whereas I-frames are image frames that may be included with the encoded video stream and/or these frames may not have any dependency over preceding image frame/s. This mechanism breaks the prediction dependency chain and/or stops error propagation through the video stream. However, Intra-coding requires more bits and may reduce the coding efficiency. Also, it may not address situations when the I-frame itself has the error due to the packet loss, which is made more likely because of the higher percentage of bits consumed by I-frames.
In low latency-video communication systems, periodic intra-frame coding may be difficult as it results in a higher end-to-end latency, jerky video and/or loss of lip sync. Progressive intra refresh is a mechanism that may be used for such systems, wherein, each of the image frames is considered to include a number of macroblocks (MBs). Amongst these MBs, selected MBs in the image frame are encoded as intra MBs (i.e. without any dependency over preceding image frame/s). Encoding an error free MB or image frame in the video stream is also referred to as refreshing. Selection of macroblocks (MB) in the image frame needs to be done such that, within any given number of consecutive image frames, all MB positions are nearly free of errors propagating from a loss happening at the start of such period. The refresh period is a period of time over which the error propagation at the decoding end is reduced to an identified level from the time of occurrence of the error, provided that no other errors get introduced during this period.
While there are several intra refresh methods in the literature such as random refresh, motion-adaptive refresh etc., the following problems of intra refresh may not have been addressed till now: compression efficiency loss due to intra refresh; implementation complexity in terms of processing cycles and memory requirements, specifically, in methods using motion adaptive refresh; higher end-to-end latency and image frame skipping in the course of video communication because of a non-uniform distribution of refresh MBs and/or a high number of refresh MBs in a given picture; rapid error propagation due to prediction of an MB from one or more MBs that are relatively older due to lack of spatial relationship amongst the refresh MBs within a frame and larger deviations from a committed intra refresh period.